home *** CD-ROM | disk | FTP | other *** search
- package
- {
- import assets.effects.blood;
- import assets.effects.star1;
- import flash.display.*;
- import flash.events.*;
- import flash.filters.*;
- import flash.utils.Timer;
-
- public class playerEngine extends MovieClip
- {
-
-
- public var snum:Number = 1;
-
- public var action:Boolean = true;
-
- public var contact:Boolean = true;
-
- public var airTime:Boolean = false;
-
- public var shad:MovieClip;
-
- public var cnum:Number = 1;
-
- public var scope:Object;
-
- public var pos:Object;
-
- public var pump:Boolean = false;
-
- public var skater:MovieClip;
-
- public var ramping:Boolean = false;
-
- public var rampObj:MovieClip;
-
- public var dnum:Number = 1;
-
- public var tscore:Number = 0;
-
- public var wnum:Number = 1;
-
- private var recoveryTimer:Timer;
-
- public var skaterFX:MovieClip;
-
- public var momentumV:Number;
-
- public var smode:Number = 0;
-
- public var base:Number = 350;
-
- public var fore:Boolean = false;
-
- public var impactV:Number;
-
- public var minGrindSpeed:Number = 5;
-
- public function playerEngine(param1:*)
- {
- cnum = 1;
- snum = 1;
- dnum = 1;
- wnum = 1;
- pos = {
- "x":200,
- "y":350
- };
- base = 350;
- contact = true;
- pump = false;
- ramping = false;
- smode = 0;
- action = true;
- airTime = false;
- fore = false;
- tscore = 0;
- recoveryTimer = new Timer(2000,1);
- skater = new skeleton();
- shad = new board_shadow();
- skaterFX = new MovieClip();
- minGrindSpeed = 5;
- super();
- scope = param1;
- recoveryTimer.addEventListener(TimerEvent.TIMER,recoverInit);
- }
-
- private function recoverCheck() : Boolean
- {
- var _loc1_:Boolean = false;
- var _loc2_:* = undefined;
- var _loc3_:* = undefined;
- var _loc4_:* = undefined;
- var _loc5_:* = undefined;
- _loc1_ = true;
- _loc2_ = scope.scene.elementArray;
- _loc3_ = 0;
- while(_loc3_ < _loc2_.length)
- {
- if(_loc2_[_loc3_].y - _loc2_[_loc3_].height <= 350 && _loc2_[_loc3_].y >= 350 && _loc2_[_loc3_].x - _loc2_[_loc3_].wide <= 250 + 150)
- {
- if(_loc2_[_loc3_].x + _loc2_[_loc3_].width > 200 + 150)
- {
- _loc1_ = false;
- break;
- }
- }
- _loc3_++;
- }
- _loc4_ = scope.scene.foregroundArray;
- _loc5_ = 0;
- while(_loc5_ < _loc4_.length)
- {
- if(_loc4_[_loc5_].objType == 2 && _loc4_[_loc5_].x - _loc4_[_loc5_].wide <= 250 + 150)
- {
- if(_loc4_[_loc5_].x + _loc4_[_loc5_].width > 200 + 150)
- {
- _loc1_ = false;
- break;
- }
- }
- _loc5_++;
- }
- return _loc1_;
- }
-
- public function setPlayer() : *
- {
- var _loc1_:* = undefined;
- skater.x = pos.x;
- skater.y = pos.y;
- shad.x = pos.x;
- shad.y = pos.y;
- shad.alpha = 0.5;
- shad.filters = [new BlurFilter(6,6)];
- skaterFX.x = pos.x;
- skaterFX.y = pos.y;
- if(skaterFX.numChildren > 0)
- {
- _loc1_ = 0;
- while(_loc1_ < skaterFX.numChildren)
- {
- skaterFX.removeChildAt(_loc1_);
- _loc1_++;
- }
- }
- scope.addChild(shad);
- scope.addChild(skater);
- scope.addChild(skaterFX);
- scope.sound.startSound("roll",0,9999,0,0);
- action = true;
- contact = true;
- smode = 0;
- starFX(10,20,20,-50);
- }
-
- public function grind() : *
- {
- var _loc1_:Boolean = false;
- _loc1_ = false;
- if(airTime)
- {
- bail();
- }
- else
- {
- if(smode != 3)
- {
- scope.stats.clearTrickFX(true);
- scope.ollieInit = false;
- scope.methodInit = false;
- scope.indyInit = false;
- }
- if(scope.vx > minGrindSpeed)
- {
- if(!scope.key1 && !scope.key2)
- {
- _loc1_ = true;
- starFX(1,2,0,0);
- tscore += 5;
- if(smode != 3)
- {
- skater.rotation = 0;
- scope.sound.setVolume("roll",0);
- skater.gotoAndPlay("grind_50-50");
- scope.stats.initTrickFX("50-50_grind");
- smode = 3;
- }
- }
- else if(Boolean(scope.key1) && !scope.key2)
- {
- _loc1_ = true;
- starFX(1,2,0,0);
- tscore += 10;
- if(smode != 3)
- {
- skater.rotation = 0;
- scope.sound.setVolume("roll",0);
- skater.gotoAndPlay("grind_tail");
- scope.stats.initTrickFX("5-0_grind");
- smode = 3;
- }
- }
- else if(!scope.key1 && Boolean(scope.key2))
- {
- _loc1_ = true;
- starFX(1,2,40,0);
- tscore += 10;
- if(smode != 3)
- {
- skater.rotation = 0;
- scope.sound.setVolume("roll",0);
- skater.gotoAndPlay("grind_nose");
- scope.stats.initTrickFX("nose_grind");
- smode = 3;
- }
- }
- }
- else
- {
- bail();
- }
- if(!_loc1_)
- {
- if(smode == 3)
- {
- tscore = 0;
- scope.stats.clearTrickFX(false);
- bail();
- }
- }
- }
- }
-
- public function removeSkater() : *
- {
- var _loc1_:* = undefined;
- skater.visible = false;
- _loc1_ = new board2();
- _loc1_.x = -113.3;
- _loc1_.y = 9.7;
- skaterFX.addChild(_loc1_);
- shad.x = skater.x - 113.3;
- shad.y = skater.y + 9.7;
- shad.rotation = 0;
- shad.visible = true;
- }
-
- public function bloodFX(param1:*, param2:*, param3:*, param4:*) : *
- {
- var _loc5_:Sprite = null;
- _loc5_ = new blood(scope,param1,param2,param3,param4);
- scope.scene.elementArray.push(_loc5_);
- scope.scene.element.addChild(_loc5_);
- }
-
- private function recover(param1:Event) : *
- {
- skater.visible = shad.visible = false;
- if(recoverCheck())
- {
- removeEventListener(Event.ENTER_FRAME,recover);
- scope.vx = 0;
- scope.ollieInit = false;
- scope.methodInit = false;
- action = true;
- contact = true;
- skater.gotoAndStop("stand");
- skater.y = shad.y = 350;
- skater.visible = shad.visible = true;
- starFX(10,20,20,-50);
- smode = 0;
- }
- else
- {
- scope.vx = 10;
- }
- }
-
- public function process() : *
- {
- var _loc1_:* = undefined;
- var _loc2_:* = undefined;
- skaterFX.x = skater.x;
- skaterFX.y = skater.y;
- _loc1_ = (100 - (base - skater.y)) / 100;
- if(_loc1_ <= 0)
- {
- _loc1_ = 0;
- }
- shad.scaleX = shad.scaleY = _loc1_;
- switch(smode)
- {
- case 0:
- base = skater.y;
- shad.y = skater.y;
- shad.rotation = skater.rotation;
- _loc2_ = scope.vx / scope.topspd;
- scope.sound.setVolume("roll",_loc2_);
- break;
- case 1:
- skater.y -= scope.vy;
- scope.vy -= scope.gravity;
- if(skater.y >= base)
- {
- skater.y = base;
- scope.vy = 0;
- smode = 0;
- contact = true;
- scope.ollieInit = false;
- }
- break;
- case 2:
- skater.y -= scope.vy;
- scope.vy -= scope.gravity;
- scope.vx -= impactV / 20;
- if(skater.y >= base)
- {
- skater.y = base;
- scope.vy = 0;
- }
- if(scope.vx <= 1)
- {
- scope.vx = 0;
- }
- break;
- case 3:
- skater.y -= scope.vy;
- scope.vy -= scope.gravity;
- if(skater.y >= base)
- {
- scope.stats.clearTrickFX(true);
- tscore = 0;
- skater.gotoAndStop("stand");
- skater.y = base;
- scope.vy = 0;
- smode = 0;
- contact = true;
- }
- break;
- case 4:
- starFX(1,1,0,0);
- skater.y -= scope.vy;
- scope.vy -= scope.gravity;
- if(skater.y >= base)
- {
- skater.y = base;
- scope.vy = 0;
- smode = 0;
- contact = true;
- tscore = 0;
- scope.stats.clearTrickFX(true);
- }
- break;
- case 5:
- starFX(1,1,0,0);
- starFX(1,1,0,-30);
- starFX(1,1,0,-60);
- skater.y -= scope.vy;
- scope.vy -= scope.gravity;
- if(skater.y >= base)
- {
- if(airTime)
- {
- tscore = 0;
- scope.stats.clearTrickFX(false);
- bail();
- }
- else
- {
- skater.y = base;
- scope.vy = 0;
- smode = 0;
- contact = true;
- tscore = 1000;
- scope.stats.clearTrickFX(true);
- tscore = 0;
- scope.indyInit = false;
- }
- }
- break;
- case 6:
- starFX(1,1,0,0);
- starFX(1,1,0,-30);
- starFX(1,1,0,-60);
- if(airTime)
- {
- tscore += 20;
- }
- skater.y -= scope.vy;
- scope.vy -= scope.gravity;
- if(skater.y >= base)
- {
- if(airTime)
- {
- tscore = 0;
- scope.stats.clearTrickFX(false);
- skater.board.wheels.visible = true;
- bail();
- }
- else
- {
- skater.y = base;
- scope.vy = 0;
- smode = 0;
- contact = true;
- scope.stats.clearTrickFX(true);
- tscore = 0;
- scope.methodInit = false;
- }
- }
- break;
- case 7:
- skater.y -= scope.vy;
- scope.vy -= scope.gravity;
- if(skater.y >= base)
- {
- skater.y = base;
- scope.vy = 0;
- smode = 0;
- contact = true;
- }
- break;
- case 10:
- action = false;
- base = 350;
- shad.y = 350;
- shad.x = skater.x;
- if(momentumV > 5)
- {
- momentumV -= 2;
- }
- else
- {
- momentumV = 5;
- }
- skater.x += momentumV;
- if(scope.vx > 1)
- {
- --scope.vx;
- }
- else
- {
- scope.vx = 0;
- }
- skater.y -= scope.vy;
- scope.vy -= scope.gravity;
- starFX(1,1,20,0);
- starFX(1,1,20,-30);
- starFX(1,1,20,-60);
- if(skater.y >= base)
- {
- skater.y = base;
- scope.sound.setVolume("roll",0.5);
- }
- if(skater.x >= 800)
- {
- scope.levelComplete();
- scope.vx = 0;
- smode = 0;
- }
- }
- if(action)
- {
- hitTest();
- }
- }
-
- public function resetCharacter() : *
- {
- var _loc1_:* = undefined;
- var _loc2_:* = undefined;
- if(snum == 3 && dnum == 2)
- {
- snum = 4;
- cnum = 6;
- }
- else
- {
- cnum = 1;
- }
- _loc1_ = 0;
- while(_loc1_ < skater.numChildren)
- {
- _loc2_ = skater.getChildAt(_loc1_);
- _loc2_.gotoAndStop(1);
- _loc1_++;
- }
- skater.board.deck.gotoAndStop(dnum);
- skater.board.wheels.gotoAndStop(wnum);
- skater.gotoAndStop("stand");
- skater.visible = shad.visible = skaterFX.visible = true;
- scope.sound.startSound("roll",0,9999,0,0);
- }
-
- public function bail() : *
- {
- action = false;
- airTime = false;
- impactV = scope.vx;
- base = 340;
- scope.ollieInit = false;
- scope.methodInit = false;
- scope.indyInit = false;
- if(scope.getChildIndex(scope.player.skater) > scope.getChildIndex(scope.scene.foreground))
- {
- scope.foreSwap();
- }
- shad.visible = false;
- skater.rotation = 0;
- skater.y -= 20;
- skater.board.wheels.visible = true;
- scope.sound.setVolume("roll",0);
- scope.sound.startSound("bail1",0,0,1,0);
- tscore = -100;
- scope.stats.clearTrickFX(false);
- scope.stats.initTrickFX("bail");
- scope.stats.updateBails(-1);
- smode = 2;
- skater.gotoAndPlay("bail_fw");
- recoveryTimer.start();
- }
-
- private function recoverInit(param1:TimerEvent) : *
- {
- scope.stats.clearTrickFX(true);
- tscore = 0;
- scope.ollieInit = false;
- scope.methodInit = false;
- scope.indyInit = false;
- if(scope.stats.bails == 0)
- {
- scope.gameComplete();
- }
- else
- {
- addEventListener(Event.ENTER_FRAME,recover);
- }
- }
-
- private function hitTest() : *
- {
- var _loc1_:* = undefined;
- var _loc2_:* = undefined;
- var _loc3_:* = undefined;
- var _loc4_:* = undefined;
- var _loc5_:* = undefined;
- var _loc6_:* = undefined;
- var _loc7_:* = undefined;
- var _loc8_:* = undefined;
- var _loc9_:* = undefined;
- _loc1_ = false;
- _loc2_ = false;
- _loc3_ = scope.scene.elementArray;
- _loc4_ = false;
- _loc5_ = 0;
- while(_loc5_ < _loc3_.length)
- {
- if(base <= _loc3_[_loc5_].y)
- {
- if(Boolean(_loc3_[_loc5_].hitTestPoint(skater.x,skater.y,false)) || Boolean(_loc3_[_loc5_].hitTestPoint(skater.x + 20,skater.y,false)) || Boolean(_loc3_[_loc5_].hitTestPoint(skater.x + 40,skater.y,false)))
- {
- switch(_loc3_[_loc5_].hitType)
- {
- case 0:
- if(Boolean(_loc3_[_loc5_].hitTestPoint(skater.x,skater.y,true)) || Boolean(_loc3_[_loc5_].hitTestPoint(skater.x + 20,skater.y,true)) || Boolean(_loc3_[_loc5_].hitTestPoint(skater.x + 40,skater.y,true)))
- {
- bail();
- }
- break;
- case 1:
- if(_loc3_[_loc5_].y - _loc3_[_loc5_].height + _loc3_[_loc5_].deep < skater.y)
- {
- bail();
- }
- else
- {
- scope.vy += scope.vy * -1;
- _loc4_ = true;
- }
- break;
- case 2:
- if(_loc3_[_loc5_].y - _loc3_[_loc5_].height + _loc3_[_loc5_].buffer < skater.y)
- {
- bail();
- }
- else
- {
- scope.vy += scope.vy * -1;
- _loc4_ = true;
- grind();
- }
- break;
- case 3:
- if(Boolean(_loc3_[_loc5_].ramp.hitTestPoint(skater.x,skater.y,false)) || Boolean(_loc3_[_loc5_].ramp.hitTestPoint(skater.x + 20,skater.y,false)) || Boolean(_loc3_[_loc5_].ramp.hitTestPoint(skater.x + 40,skater.y,false)))
- {
- skater.gotoAndPlay("rampUP");
- scope.vy = scope.vx * 0.75;
- skater.y -= scope.vy;
- smode = 7;
- }
- else if(_loc3_[_loc5_].y - _loc3_[_loc5_].height + _loc3_[_loc5_].buffer < skater.y)
- {
- bail();
- }
- else
- {
- scope.vy += scope.vy * -1;
- _loc4_ = true;
- }
- break;
- case 4:
- _loc9_ = 0;
- while(_loc9_ < _loc3_[_loc5_].hitpoints.length)
- {
- if(skater.hitTestPoint(_loc3_[_loc5_].x + -150 + _loc3_[_loc5_].hitpoints[_loc9_].x,_loc3_[_loc5_].y + _loc3_[_loc5_].hitpoints[_loc9_].y,true))
- {
- bail();
- break;
- }
- _loc9_++;
- }
- }
- }
- }
- if(_loc4_)
- {
- _loc1_ = true;
- break;
- }
- _loc1_ = false;
- _loc5_++;
- }
- _loc6_ = scope.scene.foregroundArray;
- _loc7_ = false;
- _loc8_ = 0;
- while(_loc8_ < _loc6_.length)
- {
- if(Boolean(_loc6_[_loc8_].hitTestPoint(skater.x,skater.y,false)) || Boolean(_loc6_[_loc8_].hitTestPoint(skater.x + 20,skater.y,false)) || Boolean(_loc6_[_loc8_].hitTestPoint(skater.x + 40,skater.y,false)))
- {
- switch(_loc6_[_loc8_].hitType)
- {
- case 0:
- if(Boolean(_loc6_[_loc8_].hitObj.hitTestPoint(200,base,false)) || Boolean(_loc6_[_loc8_].hitObj.hitTestPoint(220,base,false)) || Boolean(_loc6_[_loc8_].hitObj.hitTestPoint(240,base,false)))
- {
- if(Boolean(_loc6_[_loc8_].hitTestPoint(skater.x,skater.y,true)) || Boolean(_loc6_[_loc8_].hitTestPoint(skater.x + 20,skater.y,true)) || Boolean(_loc6_[_loc8_].hitTestPoint(skater.x + 40,skater.y,true)))
- {
- bail();
- }
- }
- break;
- case 1:
- break;
- case 2:
- if(Boolean(_loc6_[_loc8_].hitObj.hitTestPoint(200,base,false)) || Boolean(_loc6_[_loc8_].hitObj.hitTestPoint(220,base,false)) || Boolean(_loc6_[_loc8_].hitObj.hitTestPoint(240,base,false)))
- {
- if(_loc6_[_loc8_].y - _loc6_[_loc8_].height + _loc6_[_loc8_].buffer < skater.y)
- {
- bail();
- }
- else
- {
- scope.vy += scope.vy * -1;
- _loc7_ = true;
- grind();
- }
- }
- }
- }
- if(_loc7_)
- {
- _loc2_ = true;
- break;
- }
- _loc2_ = false;
- _loc8_++;
- }
- if(action)
- {
- if(_loc2_)
- {
- if(scope.getChildIndex(scope.player.skater) < scope.getChildIndex(scope.scene.foreground))
- {
- scope.foreSwap();
- }
- }
- else if(scope.getChildIndex(scope.player.skater) > scope.getChildIndex(scope.scene.foreground))
- {
- scope.foreSwap();
- }
- if(_loc1_ || _loc2_)
- {
- contact = true;
- }
- else if(skater.y < base)
- {
- contact = false;
- }
- else
- {
- contact = true;
- }
- }
- }
-
- public function starFX(param1:*, param2:*, param3:*, param4:*) : *
- {
- var _loc5_:* = undefined;
- var _loc6_:* = undefined;
- var _loc7_:MovieClip = null;
- _loc5_ = param1 + Math.round(Math.random() * (param2 - param1));
- _loc6_ = 0;
- while(_loc6_ < _loc5_)
- {
- (_loc7_ = new star1(skaterFX,scope)).x = param3;
- _loc7_.y = param4;
- skaterFX.addChild(_loc7_);
- _loc6_++;
- }
- }
- }
- }
-